#include <stdio.h>

int main() {
    int i = 0;
    unsigned int sum = 0;
    for (; i < 16; i++) {
        sum = sum + 1U << i;
    }
    printf("原代码sum结果: 0x%x\n", sum);

    i = 0;
    sum = 0;
    for (; i < 16; i++) {
        sum = sum + (1U << i);
    }
    printf("修正后sum结果: 0x%x\n", sum);

    return 0;
}

//优先级高代表优先形成处理数据，现被绑定
// << 优先级高于 +，因此 1U << i 会先形成一个整体（<< 先绑定 1U 和 i）
// 然后 + 再绑定 sum 和这个整体。
